#pragma once

#include <jlib/jlib.h>


USE_JLIB_NS


class logger {


public:
  static void print_vec1s (f32 value, const std::string &name) noexcept;
  static void print_vec1d (f64 value, const std::string &name) noexcept;
  static void print_vec1i (s32 value, const std::string &name) noexcept;

  static void print_vec2s (const Vec2 &value, const std::string &name) noexcept;
  static void print_vec2d (const Vec2d &value, const std::string &name) noexcept;
  static void print_vec2i (const Vec2i &value, const std::string &name) noexcept;

  static void print_vec3s (const Vec3 &value, const std::string &name) noexcept;
  static void print_vec3d (const Vec3d &value, const std::string &name) noexcept;
  static void print_vec3i (const Vec3i &value, const std::string &name) noexcept;

  static void print_vec4s (const Vec4 &value, const std::string &name) noexcept;
  static void print_vec4d (const Vec4d &value, const std::string &name) noexcept;

  static void print_box2s (const Box2 &value, const std::string &name) noexcept;
  static void print_box2d (const Box2d &value, const std::string &name) noexcept;

  static void print_box3s (const Box3 &value, const std::string &name) noexcept;
  static void print_box3d (const Box3d &value, const std::string &name) noexcept;

  static void print_mat4s (const Mat4 &value, const std::string &name) noexcept;
  static void print_mat4d (const Mat4d &value, const std::string &name) noexcept;
};
